나는 WordPress를 내 삶에서 완전히 제거하고 싶어. 처음에는 Discourse 단독 솔루션을 사용하려 했었지만, 지금은 www.literatecomputing.com에 있는 정적/정보성 콘텐츠는 Jekyll로 처리하고, 수익을 내는 부분만 Discourse로 이관하는 방안을 고려 중이다. 그리고 곧 나올 discourse-subscriptions 플러그인도 함께 사용할 계획이다. 현재 나는 설치, 업그레이드 및 기타 유지보수를 담당하는 내 도구의 프론트엔드 역할을 할 Discourse 플러그인을 필사적으로 개발하고 있어.
솔직히 말하면, PHP가 지금의 이름으로 불리기 전에 배우고 나서 현대적인 언어로 발전한 PHP를 계속 따라가지 못했습니다. 그리고 제 요구 사항은 매우 구체적입니다(돈을 받고, Digital Ocean 드롭렛이 생성되고 그 위에 Discourse가 설치되도록 작업을 수행해야 합니다).
하지만 최근 몇 번에 걸쳐 500~1000달러를 받고 Discourse나 WordPress 관련 간단한 튜닝 작업을 맡았을 때, 빠르고 쉬운 돈이 될 거라고 확신했는데 결국 후회했습니다. 가장 최근에는 시간을 많이 들인 끝에 결국 고객의 돈을 돌려주었습니다. 물론 쉬운 작업이었다면 저를 고용하지 않았을 것입니다. 또한 WordPress 사이트에서 수없이 많은 오래되고 업데이트할 수 없는 플러그인을 가진 다른 고객도 있습니다. 그 사이트는 엉망진창이었고, 어딘가에서 해킹을 당해 포르노 링크가 잔뜩 들어 있습니다. 충분히 피할 수 있는 일이었습니다.
반면, 지난 1년 정도는 WooCommerce 대신 Gravity Forms를 사용해 왔고, 일회성 결제와 구독 결제 모두를 처리하는 데 꽤 만족하고 있습니다(Discourse와 연동되지는 않지만요). (하지만 제가 원하는 시점에 정확히 Discourse 설치를 트리거하도록 설정하는 것은 아직 못 하고 있습니다!)
“표준적인” 작업을 하고 잘 지원되는 플러그인을 고수한다면 후회하지 않을 가능성이 높습니다(다만, Discourse 구독은 discourse-subscriptions 플러그인으로 처리하는 것이 좋습니다). 인터넷 사이트의 4분의 1이 WordPress를 사용하는 데는 그만한 이유가 있습니다.
업데이트: 웹사이트와 Discourse를 각각 다른 두 개의 시스템으로 운영하기로 결정했습니다. 핵심 요인은 웹사이트 콘텐츠를 업데이트해야 하는 사람들이 대부분 비기술 인력이어서, 사용하기가 매우 쉬운 콘텐츠 관리 시스템(CMS)을 사용하는 것이 큰 도움이 되기 때문입니다. Weebly를 사용하여 콘텐츠 업데이트를 쉽게 할 수 있게 했지만, 그보다 더 좋은 점은 기부 플랫폼과 연락처 관리 시스템을 제공하며, 웹사이트 테마, 구성, 임베드 등 더 복잡한 변경 사항을 이메일 한 통으로 요청할 수 있는 전용 기술 팀이 포함된 플랫폼에 비용을 지불하고 있다는 점입니다. 이 팀은 Weebly 사이트는 관리하지만 Discourse는 관리하지 않습니다.
이제 두 개의 다른 사이트를 운영하기로 결정했으니, 두 사이트를 어떻게 일관성 있게 통합할지 고민해야 합니다. @angus 님께 감사의 말씀을 전하고 싶습니다. @angus 님의 회사가 PianoGroove 커뮤니티를 지원하고 있는데, 제가 지금까지 본 통합 중 가장 아름다운 통합을 구현해 주셨습니다(많은 것을 봤지만요!)
@angus 님, 클라이언트를 위해 해주시는 놀라운 작업과, 여러분이 만든 플러그인과 테마를 오픈소스로 공개해 주시는 너그러움에 진심으로 감사드립니다. 우리 웹사이트와 Discourse가 우리에게 적합한 형태로 작동하도록 만들기까지는 아직 갈 길이 멀지만, 매번 Pavilion의 작업이 오픈소스 기반의 grassroots 커뮤니티 조직인 우리에게 정확히 필요한 것이란 점을 깨닫게 됩니다.
한 가지를 더 덧붙이자면, 우리의 작업을 유지보수하는 사람은 저뿐만 아니라 Pavilion의 모든 멤버들입니다. 우리의 협동조합은 팀워크의 결과물입니다.
또한 우리가 Landing Pages 플러그인을 오픈소스로 공개했다는 점도 언급하고 싶습니다. 이 플러그인은 Discourse 인스턴스를 백엔드로 사용하는 완전히 독립적인 페이지를 만들 수 있게 해주며, 이 주제에서 논의된 요구 사항을 충족하는 또 다른 방법입니다. 이 플러그인은 페이지의 프론트엔드를 Discourse 클라이언트와 분리하여(즉, Discourse 앱을 로드하지 않도록) 처리하되, 공통 백엔드(즉, Discourse 서버)를 통해 쉬운 통합을 허용합니다.
우리는 이미 이 플러그인을 사용하여 일부 클라이언트에게 여기서 논의된 것과 유사한 요구 사항을 충족하기 위한 작업을 시작했습니다. 또한 커뮤니티와 연관된 CMS의 일반적인 사용 사례를 기반으로 한, 해당 플러그인과 함께 사용 가능한 페이지의 쉽게 사용할 수 있는 일반화된 오픈소스 패키지를 개발하는 것도 검토하고 있습니다.
다음은 우리가 이러한 처리를 받을 것으로 예상하는 현재 사용 사례 목록입니다.
블로그(현재 이 부분을 작업 중입니다). Discourse에서 콘텐츠를 작성한 후, 실제 블로그(예: Wordpress나 Ghost처럼)처럼 테마를 적용할 수 있는 완전히 독립적인 블로그 페이지로 이를 제공합니다.
제품, 서비스 또는 기능 페이지(예: 우리의 페이지). Discourse 인스턴스 내의 콘텐츠나 데이터(카테고리, 태그, 주제, 사용자 등)를 포함할 수 있는 제품, 서비스 또는 기능을 표시합니다.
“팀” 페이지(예: 우리의 페이지). Discourse 사용자 그룹의 멤버십(및 사용자 데이터)을 사용하여 팀을 소개하는 페이지입니다.
이벤트 페이지. Discourse 인스턴스 내의 이벤트 데이터를 스타일링된 이벤트 랜딩 페이지에 나열하고 표시하기 위한 것입니다. 여기서 "이벤트 데이터"란 Discourse Calendar 플러그인 데이터, 카테고리, 주제, 사용자(예: RSVP), 위치(우리의 Locations 플러그인 사용)의 조합일 수 있습니다.
우리는 사람들이 이 방식으로 혜택을 볼 것이라고 생각하는 다른 일반화된 사용 사례에도 관심이 있습니다. 이 단계에서 이러한 처리를 덜 받을 가능성이 있는 몇 가지 사용 사례를 이미 고려해 보았다는 점도 언급하고 싶습니다:
상점. 상점의 요소를 통합하는 페이지가 있을 수 있지만, 온라인 상점은 WooCommerce나 Shopify와 같은 전용 솔루션이 항상 요구하는 방대한 기능 집합이 필요합니다.
지식 베이스. 이 요구 사항은 Knowledge Explorer 플러그인과 같은 솔루션에 의해 이미 잘 충족되고 있습니다. 랜딩 페이지가 지식 베이스의 하위 집합을 표시할 수는 있지만, Knowledge Explorer 플러그인(또는 단순히 Discourse 주제 목록)의 기능을 완전히 재현하는 것은 역효과가 날 것입니다.
우리는 이러한 페이지를 개발하려는 누구와도 협력하는 데 관심이 있습니다. 이는 개발 프로젝트 자체로서(예: 스킬 향상), 커뮤니티를 위해, 또는 심지어 판매를 목적으로 할 수 있습니다. 우리는 중기적으로(4~6개월 내) 각 사용 사례에 대해 자체 무료 오픈소스 패키지를 출시할 계획입니다.
Landing Pages 플러그인과 Pavilion의 자체 페이지는 항상 100% 오픈소스이고 무료일 것입니다. 그러나 이는 HTML과 CSS 지식이 있는 누구나 "페이지 팩"을 개발할 수 있는 일반화된 구조입니다. 곧 해당 플러그인의 지식 문서에 "개발자 가이드"를 추가할 예정입니다.
Landing Pages 플러그인은 이미 Discourse 테마 시스템이 프라이빗 리포지토리에 페이지를 호스팅하는 방식과 동일한 방식으로 이를 지원합니다(실제로 백엔드에서는 Discourse 테마 시스템에 기반하여 이를 확장합니다). 이는 원한다면 랜딩 페이지 팩에 대한 접근 권한을 판매할 수 있음을 의미합니다. 이는 다른 개발자들이 이러한 팩을 구축하도록 유인할 수 있습니다.
이 방식은 포럼과 연관된 콘텐츠 관리의 모든 요구 사항을 해결하지는 못하지만, 특히 더 작고 독립적인 커뮤니티에서 정기적으로 확인되는 요구 사항의 하위 집합을 잘 충족할 수 있습니다. 이는 별도의 인스턴스가 필요 없게 하고, 특히 인증 프로토콜(로그인 시 사용자 데이터 공유), 웹훅 또는 기타 데이터 공유 방법을 통해 해당 인스턴스 간에 데이터를 공유할 필요성을 제거하기 때문입니다.
이는 상대적으로 제한적이거나 특정된 콘텐츠 또는 정적 페이지를 포럼과 함께 관리하려는 더 작은 커뮤니티의 경우 비용과 관리 부담을 줄이는 데 도움이 될 수 있습니다. 이는 Wordpress나 기타 CMS 시스템의 직접적인 대체재는永远不会 될 것이지만, 특정 사용 사례를 훨씬 더 쉽게 만들 수 있기를 바랍니다.
저는 Discourse 기반 커뮤니티에 2.5개월째 참여하고 있습니다. 제가 겪은 문제는 스크립트 포함이 필요한 특정 도구에 대한 필요성이었습니다.
캘린더 예시: 페이지에 삽입할 수 있는 캘린더나 이벤트 도구가 있습니다. 하지만 에 스크립트가 필요하고, 해당 페이지에서 스크립트가 트리거되도록 설정해야 합니다.
더 일반적인 SAS(서버 측 광고링): 많은 경우 iframe이 이상적인 해결책이 아닙니다. 예를 들어, 회원들이 다른 사이트로 이동하여 옵트인(Opt-in)을 해야 하는 상황은 원하지 않습니다. 하지만 제 옵트인 서비스인 ConvertBox에는 스크립트와
가 필요합니다.
커뮤니티의 제공 서비스를 강화해 나가면서, 스크립트 기반 임베드를 더 쉽게 추가할 수 있는 능력을 '해결’하기 전까지는 OneBox가 지원하는 것이나 iFrame 사용에 국한된 느낌을 지울 수 없습니다. 만약 이러한 제어 및 트리거 기능을 제공하는 향상된 페이지 기능이 있다면, 제 WordPress 사이트를 폐지할 수도 있을 것 같습니다.
저는 코딩을 할 수 없지만, 커뮤니티가 이러한 개발의 혜택을 누릴 수 있도록 재정적으로 지원할 의향이 있습니다. 감사합니다!
Discourse UI(예: 토픽 목록 위)에서는 테마를 사용하여 임베드가 실제로 가능하며, Landing Pages 플러그인에서도 가능합니다. 후자의 경우, 이 작은 공룡 게임 버전을 사용하여 예시를 만들었습니다. 여기서 플레이할 수 있습니다: Pavilion (데스크톱 전용).
이것에는 코딩이 필요하지 않았습니다. 제가 한 일은 해당 에셋을 우리의 CDN으로 업로드하는 것(DigitalOcean 'space’에 폴더를 드래그 앤 드롭)이었습니다. 그리고 경로가 "dinosaur"인 페이지를 만들고 이 HTML을 복사/붙여넣기했습니다(모두 관리자 UI를 통해 수행).