{"data":[{"id":"f4b0597b-8213-4d95-865f-0479119593da","userId":"812e2589-2b5d-4b56-9529-8aa6f1ebf1ba","title":"Why fake APIs speed up frontend work","body":"Mock endpoints let UI teams ship screens before the backend is ready. Keep payloads realistic and document edge cases early.","tags":["dx","frontend","mock"],"published":true,"createdAt":"2026-09-16T15:56:15.004Z","updatedAt":"2026-09-16T15:56:15.004Z"},{"id":"4656a8b3-24ab-43ef-9652-7e1f51f2fd0c","userId":"c0652363-019e-4c04-8393-d70e38319832","title":"Design tokens that survive dark mode","body":"Start with semantic names (surface, accent, danger) instead of raw hex. Your components will thank you when themes swap overnight.","tags":["design","css"],"published":true,"createdAt":"2026-09-16T15:56:15.004Z","updatedAt":"2026-09-16T15:56:15.004Z"},{"id":"e1670898-767f-4d74-a9f1-8aac4d1ed0fe","userId":"c859f0a4-2309-4664-bb5e-d6ad69647eb8","title":"Pagination patterns that feel obvious","body":"Page + limit is enough for most demos. Return total and totalPages so tables can render without guessing.","tags":["api","pagination"],"published":true,"createdAt":"2026-09-16T15:56:15.004Z","updatedAt":"2026-09-16T15:56:15.004Z"},{"id":"6a8b3d36-863f-4e04-99f8-1e148675cc87","userId":"94449a21-334b-40de-afcb-4811edf6b068","title":"Draft: notes from an API workshop","body":"Still collecting examples for status codes and delay params. Publish after the next meetup.","tags":["draft","workshop"],"published":false,"createdAt":"2026-09-16T15:56:15.004Z","updatedAt":"2026-09-16T15:56:15.004Z"},{"id":"ae02ba4c-fdea-4aa4-a86d-5da8f983d6ce","userId":"46fe8663-f0e7-45f6-bdd7-01e50e553aed","title":"Postgres jsonb for flexible arrays","body":"Ingredients, tags, and instructions fit jsonb well when you do not need per-item joins yet. Index what you filter on.","tags":["postgres","jsonb"],"published":true,"createdAt":"2026-09-16T15:56:15.004Z","updatedAt":"2026-09-16T15:56:15.004Z"},{"id":"88fd1de1-209f-48b2-9616-800a6aaa36c4","userId":"8657e4ca-810e-42da-a5a6-b13a8a76e65b","title":"Bearer tokens in playground demos","body":"Store a mock token in sessionStorage so Me requests stay sticky while you explore protected routes.","tags":["auth","playground"],"published":true,"createdAt":"2026-09-16T15:56:15.004Z","updatedAt":"2026-09-16T15:56:15.004Z"},{"id":"f8b7a271-8123-4c20-a33a-45d3312b0e0b","userId":"1fd50f3e-f9fc-4e7d-aef6-af33c901fa64","title":"Search that matches title and body","body":"A single search param with ilike across title and body covers 80% of list UIs without full-text search.","tags":["search","api"],"published":true,"createdAt":"2026-09-16T15:56:15.004Z","updatedAt":"2026-09-16T15:56:15.004Z"},{"id":"4ca89db8-0256-4a71-8dfa-ec9e407b8f9c","userId":"e5ce2bdc-0620-4445-b690-f45795a3fcb1","title":"French toast for developers","body":"Not a recipe post — just a reminder that sample content should feel human, not lorem ipsum forever.","tags":["writing","content"],"published":true,"createdAt":"2026-09-16T15:56:15.004Z","updatedAt":"2026-09-16T15:56:15.004Z"},{"id":"81400303-43df-4ad5-acc8-682546758541","userId":"f2a3b899-8fba-4121-9c08-46c6d50b0700","title":"Rate limits without Redis","body":"An in-memory Map per process is fine for mock platforms. Document the headers so clients can back off cleanly.","tags":["rate-limit","ops"],"published":true,"createdAt":"2026-09-16T15:56:15.004Z","updatedAt":"2026-09-16T15:56:15.004Z"},{"id":"114f3636-bf07-4231-8d08-60017faa29a5","userId":"70fdfc33-ede9-49cd-bd03-6a0cdd14f3cf","title":"OpenAPI as a living catalog","body":"When you add a resource, update schemas and paths in the same PR. Tools and AI assistants read that file first.","tags":["openapi","docs"],"published":true,"createdAt":"2026-09-16T15:56:15.004Z","updatedAt":"2026-09-16T15:56:15.004Z"},{"id":"e1870f06-0aca-4bb8-a410-1797a5d861db","userId":"9953ed9c-bc5a-480b-93b5-81709adf6707","title":"Unpublished: travel notes","body":"Private draft about Tokyo cafes with good Wi-Fi. Not ready for the public feed.","tags":["travel","draft"],"published":false,"createdAt":"2026-09-16T15:56:15.004Z","updatedAt":"2026-09-16T15:56:15.004Z"},{"id":"a882d56b-95b3-4802-b352-82226a40e816","userId":"89a25108-eaf6-4bf4-8e85-c6e602908c68","title":"Filtering by author id","body":"Pass userId on list endpoints to build profile walls without nested routes. Keep it optional for global feeds.","tags":["api","users"],"published":true,"createdAt":"2026-09-16T15:56:15.004Z","updatedAt":"2026-09-16T15:56:15.004Z"}],"pagination":{"page":1,"limit":12,"total":24,"totalPages":2}}