Activity Feed

S

Sam published a new MVP MVP ForSale Promo Storefront

18 days ago

MVP ForSale Promo Storefront

MVP ForSale (mvp.forsale) is a server-rendered promotional listing storefront for an MVP Hub-style marketplace, built on Next.js 16 (App Router) and React 19 with plain JavaScript and zero UI-framework dependencies. It is a read-only catalog frontend: every page fetches the marketplace catalog server-side from MVP Hub's public API, so crawlers and link previews receive full HTML, and every buy action deep-links back to the marketplace with UTM attribution. SEO is the core feature set — per-listing metadata and Open Graph tags, schema.org Product JSON-LD with offer price and aggregate rating, canonical URLs, a live sitemap.xml generated from the catalog, robots.txt, and noindexed search results. The catalog UX covers category landing pages with data-derived subcategory chips, faceted search (category, tech stack, capability, price slider), client-side sort, listing detail pages with gallery, seller-provided markdown body (rendered with raw HTML stripped), readiness badges, verified-review counts, and multi-variant "from" price ranges. Data-integrity guards are built in: reviews are never fabricated, unpriced listings never show $0, demo buttons only render for real demo links, and sold-out or coming-soon sale statuses are respected. The visual theme is a distinctive hand-drawn wireframe aesthetic (Kalam handwriting font, sketch-style browser chrome) that is deliberately easy to re-skin: one CSS file, design tokens at the top. Easy to set up — clone, set three env vars (API origin, public marketplace origin, canonical site origin), pnpm install, pnpm dev; ships with a BuildKit-secret Dockerfile producing a Next.js standalone image with a liveness health route for blue/green deploys. Pluggable against any backend exposing the /api/mvps list + detail contract. Ideal for marketplace operators who want a second themed storefront or SEO promo surface for the same catalog, agencies white-labelling listing sites, and developers who want a clean reference for server-rendered catalog SEO on the App Router.

C

Clara upvoted SM-Post Social Media Scheduler

25 days ago
S

SM-Post Social Media Scheduler Completed the publishing-safety pass

26 days ago
T

Tomas commented on SM-Post Social Media Scheduler

27 days ago

Nine real providers plus a MockProvider whose content markers drive success, failure, retry, refresh and ambiguous paths — the whole publish state machine is testable without touching a real account.

C

Clara reviewed SM-Post Social Media Scheduler

28 days ago

Approvals are bound to a content hash that the worker rechecks right before fan-out, so an edited post cannot ride a stale approval. Rare to see that done correctly.

R

Ravi reviewed SM-Post Social Media Scheduler

29 days ago

Flushed Redis on purpose and ran the repair command — every scheduled post came back. Postgres as the source of truth for publishing is the right call.

S

Sam published a new MVP SM-Post Social Media Scheduler

30 days ago

SM-Post Social Media Scheduler

SM-Post is a multi-tenant social-media posting and scheduling platform — the self-hostable core of a Buffer/Hootsuite-style product, delivered as a pnpm + Turborepo monorepo. Four apps: a Next.js 15 (App Router) + React 19 web client, a Fastify 5 API, a BullMQ worker, and a Playwright E2E suite; seven packages including a Prisma 6 data layer (33 models, 14 hand-authored migrations), a provider SDK, and an AES-256-GCM token vault. It runs on Postgres 17, Redis 7 and S3/MinIO. Nine real providers ship in the box — Bluesky, Mastodon and Telegram work out of the box, while LinkedIn, Facebook, Instagram, X, Pinterest and TikTok activate as soon as you supply your own platform-app credentials — plus a MockProvider whose content markers drive every branch of the publish state machine in tests and demos. The publishing engine is the differentiator: Postgres is the source of truth and BullMQ jobs are disposable, deterministically-named triggers, so you can flush Redis entirely and rebuild all queue state with one command. BullMQ is pinned to a single attempt and the application owns retry policy in the database (attemptCount / maxAttempts / nextRetryAt), because letting the queue retry would double-post; a maybe-sent outcome is never auto-retried and instead lands in an operator needs-review inbox, and a recorded success is never re-posted. Multi-tenancy is workspaces and projects with OWNER/ADMIN/MEMBER roles, hash-only email invitations, and an append-only audit stream. Per-project approvals bind an approval to a sha256 snapshot of the post content, media, per-provider overrides and targets — and the worker recomputes that hash immediately before fan-out, so an edited post can never ride an old approval. Stripe Checkout, the Billing Portal and a signed raw-body webhook back FREE/PRO/TEAM tiers with channel, post, member and project limits; omit the Stripe key and it drops into self-host mode with everything unlimited. Media uploads are presigned straight to S3/MinIO so bytes never transit the API, then content-sniffed with sharp on completion. Auth is passwordless magic-link (better-auth) with optional Google OIDC. Provider tokens live in an append-only encrypted vault — rows are inserted on refresh, never updated, and never stored on the channel row. Operationally it ships liveness and readiness probes, pino structured logs with secret redaction and request IDs, opt-in Sentry, Redis-backed rate limiting, Zod env schemas that fail fast at boot, and a production guard that refuses to start with dev secrets. Tests: 65 unit files, 19 integration suites against real Postgres/Redis/MinIO/Mailpit, and 5 Playwright journeys covering auth + tenancy, connect + publish, approvals, failure review, and billing limits. Ideal for founders launching a niche or vertical scheduling tool, agencies running client social calendars under one roof, teams that want first-party control of their social tokens instead of renting a SaaS seat, and developers who want a genuinely production-shaped queue, tenancy and OAuth codebase to learn from.

J

Jordan upvoted Hireloop Self-Hosted Job Board

2 months ago
S

Hireloop Self-Hosted Job Board Completed pre-launch hardening

2 months ago
D

Devon commented on Hireloop Self-Hosted Job Board

3 months ago

The slug-based public URLs plus per-listing schema.org JobPosting JSON-LD make Google-for-Jobs indexing trivial to enable.

M

Mei reviewed Hireloop Self-Hosted Job Board

3 months ago

Operational baseline is the differentiator: /api/health, /api/ready, structured logs, request IDs, bundle budget in CI, and Mailpit-backed email round-trip tests.

J

Jordan reviewed Hireloop Self-Hosted Job Board

3 months ago

Auth handling and account deletion are noticeably more careful than most starter repos. Opaque sessions hashed at rest is the right call.

S

Sam published a new MVP Hireloop Self-Hosted Job Board

3 months ago

Hireloop Self-Hosted Job Board

Hireloop is a self-hostable, production-grade job board built on Next.js 15 (App Router), Postgres 16, and Drizzle ORM. Candidates browse, filter, and bookmark roles; employers create a free account, post a job, and manage their listings from any device; admins moderate the board. The auth layer uses bcryptjs work-factor-12 password hashes and opaque session tokens (raw bytes in an HttpOnly cookie, only sha256(token) stored server-side) with a 30-day sliding expiry. Email verification and password reset use atomic UPDATE ... RETURNING tokens so replay is impossible, with Resend in production and Mailpit/SMTP in dev/CI. Self-serve account deletion soft-deletes the user, scrubs PII, and closes every owned posting (GDPR-aligned). Every /api/auth/* and /api/me/* endpoint sits behind in-memory rate limits and is wrapped in a top-level handler that emits structured JSON logs (request id, route, method, ip, status, ms) and returns a sanitised 500 so Drizzle internals never leak through. Security headers (HSTS, CSP, X-Frame-Options: DENY, X-Content-Type-Options, Referrer-Policy, Permissions-Policy) are set in next.config.ts and apply to every route. /api/health and /api/ready expose liveness + readiness probes for any load balancer or orchestrator. Sentry integration is one env var (SENTRY_DSN) away; the SDK is dynamically imported so a deploy without it pays zero cost. Tests: 80 unit (Vitest), integration suite against an ephemeral Postgres (testcontainers), and Playwright E2E that round-trips the verify-email and password-reset flows through Mailpit in CI. SEO: per-listing schema.org JobPosting JSON-LD (Google for Jobs ready), canonical URLs, OG image, sitemap, robots disallow on every gated route, and a bundle-size budget enforced in CI. Ideal for indie founders launching a niche job board, agencies building white-label boards for clients, internal hiring portals at companies that want first-party data, and developers learning a modern Next.js + Postgres + auth-from-scratch stack.

A

Alice upvoted Offer App NZ Offers & Cashback Platform

4 months ago
S

Offer App NZ Offers & Cashback Platform Completed multi-app platform baseline

4 months ago
M

Mia commented on Offer App NZ Offers & Cashback Platform

4 months ago

The Expo app plus shared API client package is a strong touch. It keeps the product surface broad without fragmenting the implementation story.

B

Tracked redirects, cashback activation, wallet flows, and sponsored listings show strong marketplace thinking rather than just coupon UI polish.

A

Alice reviewed Offer App NZ Offers & Cashback Platform

4 months ago

The split between consumer web, merchant tools, admin workflows, and mobile makes this much easier to evaluate as a real platform.