-
e3ec3a8ba3
fix(seo): load the entry module with defer instead of async
main
anthony
2026-08-02 12:51:09 +02:00
-
ca4f896256
fix(seo): render each page in its actual language during SSR
anthony
2026-08-02 11:12:21 +02:00
-
7483379bcd
fix(seo): resolve theme SSR/hydration mismatch (React error #418)
anthony
2026-08-02 11:02:55 +02:00
-
6fc3386965
fix(seo): pass lang as a prop to Header/LanguageSwitcher instead of useParams
anthony
2026-08-02 10:58:23 +02:00
-
74c676df9f
specs
anthony
2026-08-02 10:57:41 +02:00
-
3a9836d58b
feat(seo): add video and audio conversion pages
anthony
2026-08-02 10:39:08 +02:00
-
04b792c454
feat(seo): add remaining document conversion pages
anthony
2026-08-02 10:36:59 +02:00
-
0e19f92cda
feat(seo): add remaining image, HEIC, and ICO conversion pages
anthony
2026-08-02 10:35:11 +02:00
-
e6ab78de29
feat(seo): add conversion-page scaffolding with 2 seed pairs (jpg-to-png, pdf-to-docx)
anthony
2026-08-02 10:32:53 +02:00
-
3b53d82b3d
feat(seo): migrate to build-time prerendering with vite-react-ssg
anthony
2026-08-02 10:30:26 +02:00
-
8dcc5f3405
chore(frontend): downgrade react-router-dom to v6 for vite-react-ssg compatibility
anthony
2026-08-02 10:24:43 +02:00
-
c07663aa7b
feat(seo): return a real 404 status for unmatched routes
anthony
2026-08-02 10:23:07 +02:00
-
b2636e20cf
feat(seo): redirect / to /fr/ or /en/ server-side based on Accept-Language
anthony
2026-08-02 10:21:38 +02:00
-
5ff8a865e8
feat(seo): add compression, cache-control headers, configurable frontend dist path
anthony
2026-08-02 10:20:22 +02:00
-
26433fa9c7
docs: add implementation plan for SEO fixes and prerendering migration
anthony
2026-08-02 10:13:28 +02:00
-
9d30ff4c74
docs: add design spec for SEO fixes and prerendering migration
anthony
2026-08-02 09:51:40 +02:00
-
afb0fed650
feat(video): add video format family, resolution control, and marquee pair

anthonyandClaude Sonnet 5
2026-08-02 09:07:23 +02:00
-
770d2c9bdc
feat(infra): add docker-compose for local MariaDB with Prisma schema init

anthonyandClaude Sonnet 5
2026-08-02 09:05:36 +02:00
-
457913d8d4
feat(video): wire video converters, resolution validation, and timeout into app.js/worker.js

anthonyandClaude Sonnet 5
2026-08-01 22:01:58 +02:00
-
9c1f857398
feat(video): add MIME types for mp4/webm/mov/avi/mkv

anthonyandClaude Sonnet 5
2026-08-01 21:59:06 +02:00
-
913dbac691
feat(video): add ffmpeg-backed video converter for mp4/webm/mov/avi/mkv

anthonyandClaude Sonnet 5
2026-08-01 21:58:23 +02:00
-
886c2e8539
feat(video): add configurable VIDEO_JOB_TIMEOUT_MS

anthonyandClaude Sonnet 5
2026-08-01 21:57:37 +02:00
-
a92556808a
docs(video): add implementation plan for video conversion feature

anthonyandClaude Sonnet 5
2026-08-01 21:53:56 +02:00
-
728247a2cf
docs(video): refine spec with verified file-type detection and simplified converter

anthonyandClaude Sonnet 5
2026-08-01 21:51:50 +02:00
-
69b3de8031
docs(video): add design spec for video conversion feature

anthonyandClaude Sonnet 5
2026-08-01 15:23:49 +02:00
-
3775d34a22
feat(audio): add bitrate chip control, default bitrates, and marquee pair
anthony
2026-08-01 14:22:40 +02:00
-
3d62d2983b
feat(audio): recognize the audio family in the frontend formats grid
anthony
2026-08-01 14:19:39 +02:00
-
433ff3b726
feat(audio): add MIME types for mp3/wav/ogg/flac/aac/m4a
anthony
2026-08-01 14:17:25 +02:00
-
050ea5ba64
feat(audio): wire audio converters and bitrate validation into app.js/worker.js
anthony
2026-08-01 14:15:13 +02:00
-
05be353664
feat(audio): add ffmpeg-backed audio converter for mp3/wav/ogg/flac/aac/m4a
anthony
2026-08-01 14:13:09 +02:00
-
13d095aa4c
docs: add audio conversion implementation plan
anthony
2026-08-01 13:41:00 +02:00
-
aa5383d7f0
docs: fix m4a mime type and document exact file-type detection bytes
anthony
2026-08-01 13:38:48 +02:00
-
a23ccf465c
docs: add audio conversion design spec
anthony
2026-08-01 13:34:44 +02:00
-
74db0ecfcc
feat(frontend): add archive pair to the homepage format marquee

anthonyandClaude Sonnet 5
2026-08-01 13:09:38 +02:00
-
48c70254c1
feat(frontend): add archive format family, compression control, and fixed double-extension parsing

anthonyandClaude Sonnet 5
2026-08-01 13:03:30 +02:00
-
ef6de6b583
feat(archive): wire archive converters, validation, and extension parsing into app.js/worker.js

anthonyandClaude Sonnet 5
2026-08-01 13:00:01 +02:00
-
a8cdb06d5c
feat(archive): add MIME types and compound-extension aliases for archive formats

anthonyandClaude Sonnet 5
2026-08-01 12:55:56 +02:00
-
ceddeddf3e
feat(archive): add rar extraction support

anthonyandClaude Sonnet 5
2026-08-01 12:55:10 +02:00
-
a66143d312
feat(archive): add 7z and tar.7z converters

anthonyandClaude Sonnet 5
2026-08-01 12:53:36 +02:00
-
a76b10a43f
feat(archive): add tar.bz2 converter via 7za

anthonyandClaude Sonnet 5
2026-08-01 12:52:29 +02:00
-
c9251e66e2
feat(archive): add tar and tar.gz converters

anthonyandClaude Sonnet 5
2026-08-01 12:51:34 +02:00
-
d68694ead8
feat(archive): add zip converter with compression level and zip-slip protection

anthonyandClaude Sonnet 5
2026-08-01 12:49:46 +02:00
-
031df9a999
feat(archive): add double-extension-aware filename parsing helper

anthonyandClaude Sonnet 5
2026-08-01 12:47:27 +02:00
-
a7a91a7a2e
feat(frontend): add remove button to pending and submitted file cards

anthonyandClaude Sonnet 5
2026-07-31 16:47:18 +02:00
-
987af80286
feat(frontend): redesign homepage and file config form with aurora palette

anthonyandClaude Sonnet 5
2026-07-31 16:34:13 +02:00
-
023a96e5d8
feat(frontend): show destination format badge, fix download size to reflect converted output

anthonyandClaude Sonnet 5
2026-07-31 16:14:44 +02:00
-
db3e73860b
feat(api): expose outputSizeBytes on job status

anthonyandClaude Sonnet 5
2026-07-31 16:14:38 +02:00
-
89749d8c20
fix(frontend): show file size in the download button label

anthonyandClaude Sonnet 5
2026-07-31 16:10:29 +02:00
-
a647bee507
feat(frontend): thread file size from upload through to the download card

anthonyandClaude Sonnet 5
2026-07-31 16:04:01 +02:00
-
f1f7a0162d
feat(frontend): add icon/size header, spinner, and styled download button to FileCard

anthonyandClaude Sonnet 5
2026-07-31 16:02:06 +02:00
-
994d70aa62
feat(frontend): restyle format picker and add file size to the config card

anthonyandClaude Sonnet 5
2026-07-31 16:01:37 +02:00
-
7c58e50c11
feat(frontend): use flag icons in the language switcher

anthonyandClaude Sonnet 5
2026-07-31 15:59:39 +02:00
-
f5958586b7
feat(frontend): add formatBytes util for human-readable file sizes

anthonyandClaude Sonnet 5
2026-07-31 15:53:03 +02:00
-
3cff496a85
feat(frontend): add flag-icons dependency

anthonyandClaude Sonnet 5
2026-07-31 15:52:37 +02:00
-
d0ff81344f
docs: add design spec for file card / language switcher polish

anthonyandClaude Sonnet 5
2026-07-31 15:43:46 +02:00
-
005bb0e2a7
package.json > fix npm run deploy for prisma
anthony
2026-07-31 15:32:44 +02:00
-
9d2a966431
docs: document o2switch's single package.json/node_modules constraint
anthony
2026-07-31 15:27:46 +02:00
-
4e58568ddd
fix(deploy): mirror frontend runtime deps into the root package.json
anthony
2026-07-31 15:26:16 +02:00
-
965b2ecc53
style(frontend): responsive polish pass for narrow viewports
anthony
2026-07-31 15:00:18 +02:00
-
8e405bd3b0
feat(frontend): add per-language SEO metadata, JSON-LD, robots.txt, and sitemap
anthony
2026-07-31 14:59:06 +02:00
-
2aa8e51b80
feat(frontend): add reassurance strip and supported-formats section
anthony
2026-07-31 14:57:46 +02:00
-
bc7a3b0691
feat(frontend): add routing, layout, i18n wiring, and restyle the conversion tool
anthony
2026-07-31 14:55:16 +02:00
-
ee18cc2d90
feat(frontend): add design tokens, dark mode hook, and i18n scaffold
anthony
2026-07-31 14:49:19 +02:00
-
f499196dae
docs: add Ombrora Convert frontend redesign implementation plan
anthony
2026-07-31 14:37:05 +02:00
-
ab95e3e699
docs: add Ombrora Convert frontend redesign design spec
anthony
2026-07-31 14:27:15 +02:00
-
5850ca2c68
README.md > Add ffmpeg portable o2switch setup
anthony
2026-07-31 14:01:27 +02:00
-
d811eb0abc
README.md > Add Calibre Deploy Method
anthony
2026-07-31 13:54:56 +02:00
-
dd8557e418
docs: add ebook conversion implementation plan
anthony
2026-07-31 13:29:11 +02:00
-
86b555b334
feat: register ebook converter in the app so the API serves the new family
anthony
2026-07-31 13:29:06 +02:00
-
977dac35d9
feat: add ebook MIME types, fix azw3/mobi detection collision, trust undetectable ebook formats
anthony
2026-07-31 13:25:46 +02:00
-
534630ab4e
feat: give ebook conversions their own worker timeout and register the converter
anthony
2026-07-31 13:24:49 +02:00
-
f796c0bd97
feat: add configurable ebookJobTimeoutMs to config
anthony
2026-07-31 13:23:30 +02:00
-
b95e371989
feat: add ebook converter wrapping Calibre's ebook-convert CLI
anthony
2026-07-31 13:23:01 +02:00
-
0cef6842de
docs: add ebook conversion design (Calibre ebook-convert wrapper)
anthony
2026-07-31 13:13:49 +02:00
-
e7c30202f5
feat: register font/dfont converters in the app and worker

anthonyandClaude Sonnet 5
2026-07-31 12:59:19 +02:00
-
be50f1f076
feat: add font MIME types and fix dfont/ico detection collision

anthonyandClaude Sonnet 5
2026-07-31 12:57:35 +02:00
-
2cde4ec035
feat: add source-only dfont font converter

anthonyandClaude Sonnet 5
2026-07-31 12:56:13 +02:00
-
e5e4f31e9b
feat: add bidirectional ttf/otf/woff font converter

anthonyandClaude Sonnet 5
2026-07-31 12:55:19 +02:00
-
b61e6e2df3
feat: add font conversion dependencies and test fixtures

anthonyandClaude Sonnet 5
2026-07-31 12:54:32 +02:00
-
1eb391242f
Add implementation plan for font conversion (ttf/otf/woff/dfont)
anthony
2026-07-31 10:58:53 +02:00
-
eb211d5672
Fix fontkit import in font conversion spec
anthony
2026-07-31 10:53:07 +02:00
-
bd13bc1c9a
Add design spec for font conversion (ttf/otf/woff/dfont; cff/cid dropped)
anthony
2026-07-31 10:50:44 +02:00
-
25a95f1ea3
feat: add ICO size picker to the upload UI

anthonyandClaude Sonnet 5
2026-07-31 10:18:07 +02:00
-
598781f417
feat: register ICO/HEIC/HEIF converters in the worker and pass iconSize through

anthonyandClaude Sonnet 5
2026-07-31 10:16:25 +02:00
-
67bdfbf3de
feat: wire ICO/HEIC/HEIF converters and iconSize validation into the API

anthonyandClaude Sonnet 5
2026-07-31 10:15:14 +02:00
-
be43eac13a
feat: thread iconSize through jobRepository

anthonyandClaude Sonnet 5
2026-07-31 10:13:15 +02:00
-
1ff660a3d2
feat: add iconSize column to ConversionJob

anthonyandClaude Sonnet 5
2026-07-31 10:12:32 +02:00
-
8795f65055
feat: add source-only HEIC/HEIF image converter

anthonyandClaude Sonnet 5
2026-07-31 10:10:41 +02:00
-
05ef7dfca1
feat: add bidirectional ICO image converter

anthonyandClaude Sonnet 5
2026-07-31 10:09:56 +02:00
-
39b296f5d3
feat: add ico MIME type and heif->heic extension alias

anthonyandClaude Sonnet 5
2026-07-31 10:08:46 +02:00
-
2b2d8a9e6f
Add implementation plan for HEIC/HEIF/ICO image format support
anthony
2026-07-31 09:54:06 +02:00
-
fc217d8aae
Add HEIC/HEIF test fixtures for upcoming heic-convert-based decoding
anthony
2026-07-31 09:48:11 +02:00
-
587ace3366
package.json > create deploy script
anthony
2026-07-31 09:31:13 +02:00
-
bac93c853a
Add design spec for HEIC/HEIF (source-only) and ICO image formats
anthony
2026-07-31 09:30:26 +02:00
-
b40a7d340f
Add support for csv + xlsx
anthony
2026-07-31 09:17:08 +02:00
-
4c408d83e9
Markdown conversion doc + CLAUDE.md improve
anthony
2026-07-31 08:40:04 +02:00
-
756e875fd9
feat: add md<->txt passthrough document converters

anthonyandClaude Sonnet 5
2026-07-31 08:34:51 +02:00
-
70c0c5ce6b
feat: add md<->docx document converters

anthonyandClaude Sonnet 5
2026-07-31 08:33:31 +02:00
-
82533ca436
feat: add md<->pdf document converters

anthonyandClaude Sonnet 5
2026-07-31 08:31:53 +02:00
-
1595c5e0af
feat: add md<->html document converters

anthonyandClaude Sonnet 5
2026-07-31 08:31:00 +02:00