The Profile: a creator agency site the agency runs itself
Website for a creator and influencer management agency: rosters of creators and campaigns, enquiry forms for brands and creators, and a dashboard the agency uses to keep all of it current. Built to grow into a portal.
Website2026
Case study

- Website
- Admin dashboard
- Next.js
- PostgreSQL
- Lead capture
- Automated tests
The brief
The Profile manages creators and brokers their partnerships with brands. Its site has two audiences with different questions: a brand wants to see who the agency represents and what its campaigns delivered, and a creator wants to know whether to apply. The brief asked for a dark, design-led site with a purple accent, a creator roster filtered by niche, profiles linked to each creator's Instagram and TikTok, campaign pages, and separate forms for brand enquiries and creator applications, with somewhere to track what came in.
Two constraints shaped the build. The agency had to keep its roster, campaigns and reviews current without a developer. And the site is the first stage of a portal where brands and creators sign in, run campaigns, manage bookings and message each other, so nothing built now could be thrown away later.
What we built
A Next.js site in TypeScript on PostgreSQL, hosted on Railway and deployed from the main branch. The public pages went up on 15 June 2026, following the brief and the layout of an existing prototype. Over the next two days the content moved into the database: creators, campaigns and reviews became records, and the public pages show only the published ones.
The dashboard covers all of it. The agency creates and edits creators, campaigns and reviews as drafts before publishing, uploads images to Cloudinary, and links creators to the campaigns they featured in from either side. Enquiries are worked through with a status, internal notes and a CSV export, and a creator application becomes a draft profile in one step. Each member of the agency has their own login with a hashed password, the sign-in check runs before any admin page renders, and the dashboard works on a phone.
The home page opens on the agency's own 3D logo render. Campaign images were converted from PNG to JPEG, taking them from about 9MB to about 1MB, so the rosters load quickly on a phone.
Brand enquiries and creator applications are saved to the database and emailed to the agency from its own authenticated domain. The data model was laid out with the portal in mind, so brand and creator accounts can be added to it rather than bolted on.
How we checked it
- Unit and integration
- 93 Vitest tests, recorded 14 July 2026, run against a separate test database that never touches the live one.
- End to end
- 13 Playwright tests covering sign-in, admin accounts, creators, campaigns, enquiries and the rule that drafts stay off the public site.
- On every push
- GitHub Actions runs both suites, with a coverage gate, on a throwaway PostgreSQL database.
- On the live site
- Every fix is tested through the live interface. When uploaded images began failing intermittently in July, the cause was traced to the host having no IPv6 route to the image service. Images now load straight from Cloudinary's CDN, checked live with none broken.
- Lighthouse, 16 Sep 2026
- theprofile.agency on a phone: performance 94, accessibility 96, best practices 100, SEO 92. On desktop: 100, 96, 100, 92.
What changed
Live on theprofile.agency since 22 June 2026, a week after the first commit, with email from the agency's domain verified the same day.
The agency runs the content itself. Its first round of feedback, on 19 June, asked for more of the site to be editable: separate Instagram and TikTok handles, featured-content tiles with their own images and links, and campaign highlights set from a creator's own profile. All three shipped that day. The portal is the next phase, and it builds on this one rather than replacing it.
Tell us what you are building.
We read every enquiry and reply personally, usually within one working day. Prefer email? hello@codena.co.uk